<?php
/**
 * Created by PhpStorm.
 * User: zhangrxiang
 * Date: 2017/1/5
 * Time: 10:49
 */
//array_column — 返回数组中指定的一列

//array array_column ( array $input , mixed $column_key [, mixed $index_key ] )
//array_column() 返回input数组中键值为column_key的列，
// 如果指定了可选参数index_key，那么input数组中的这一列的值将作为返回数组中对应值的键。

$records = array(
	array(
		'id' => 2135,
		'first_name' => 'John',
		'last_name' => 'Doe',
	),
	array(
		'id' => 3245,
		'first_name' => 'Sally',
		'last_name' => 'Smith',
	),
	array(
		'id' => 5342,
		'first_name' => 'Jane',
		'last_name' => 'Jones',
	),
	array(
		'id' => 5623,
		'first_name' => 'Peter',
		'last_name' => 'Doe',
	)
);

$first_names = array_column($records, 'first_name');
print_r($first_names);
print_r(array_column($records,'first_name','id'));


$arr = array_map(function($arr){
	return $arr['first_name'];
},$records);

var_dump($arr);



if (!function_exists('array_column')) {
	function array_column($input, $column_key, $index_key = null) {
		$arr = array_map(function($d) use ($column_key, $index_key) {
			if (!isset($d[$column_key])) {
				return null;
			}
			if ($index_key !== null) {
				return array($d[$index_key] => $d[$column_key]);
			}
			return $d[$column_key];
		}, $input);

		if ($index_key !== null) {
			$tmp = array();
			foreach ($arr as $ar) {
				$tmp[key($ar)] = current($ar);
			}
			$arr = $tmp;
		}
		return $arr;
	}
}